//ITMD536 Software Testing and Maintenance.
//Final project <group assignment>
//Author: Wanglei ID:A20479012
//Face.hpp, Face class, realize the face detect, landmark, recognition algorithm.
#ifndef _FACE_H
#define _FACE_H
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
//ncnn library
#include "ncnn/platform.h"
#include "ncnn/net.h"
#include "Facecommon.hpp"
//using namespace cv;
//using namespace ncnn;
class Face{ //Face class definition.
private:
public:
    Face(); //default contructor.
    ~Face(){};//destructor.
    int faceDetect(cv::Mat& frame, std::vector<Bbox>& rBbox);
    int faceRecognize(cv::Mat& frame, FaceRecType *fdBox);
    int faceCompare(float *origin, float *chose, float *score);
    int faceLandmark(cv::Mat& frame, FaceLmkType *lmdBox);
};
#endif //_FACE_H